package org.shoukaiseki.common.utils;


public class ByteIntegerUtils {

    /**
     *  往数组指定位置插入另一个数组,主要用与订单号中的数字拼接
     * @param bytes             原字节数组
     * @param index             起始插入位置
     * @param bytesTemp         要插入的数组
     * @param appSize           指定要插入位置数组的长度,不足前面补0
     *                          此值大于0时 isEmptySetZero也必须设置为true
     *                          为0时按实际字节数处理, isEmptySetZero 同时有效
     * @param isEmptySetZero    bytesTemp 数组中字节如果为空则设置为0,否则当做无效字节处理
     * @return  下个需要插入的位置
     */
    public static int insertBytes(byte[] bytes,int index,byte[] bytesTemp,int appSize,boolean isEmptySetZero){
        if(appSize>0){

            //位数不够前面补0
            for (int i = 0; i < appSize-bytesTemp.length; i++) {
                bytes[index++]='0';
            }
        }
        for (int i = 0; i < bytesTemp.length; i++) {
            //字节为0时输出的为空格字符,
            if(bytesTemp[i]!=0){
                bytes[index++]=bytesTemp[i];
            }else {
                if(isEmptySetZero){
                    bytes[index++]='0';
                }
            }

        }

        return index;
    }


}
